/* input.h */

/**
 * @file
 * This module encapsulates all functions needed to compress and decompress
 * files.
 *
 * This includes reading and writing the files.
 */
#ifndef HUFFMAN_H
#define	HUFFMAN_H

/**
 * Reads the file with the given file name, compresses it and writes the
 * compressed file to a new file with the specified name.
 *
 * If the output filename is provided, a file with the same name as the input
 * file combined with a ".hc" extension is created.
 *
 * @param in_filename - The name of the input file.
 * @param out_filename - The name of the output file. This file will be created
 *                       or overwritten.
 */
extern void huffman_compress(char *in_filename, char *out_filename);

extern void huffman_decompress(char *in_filename, char *out_filename);

#endif	/* HUFFMAN_H */

